Version 2018.3.0¶
Introduction¶
The API now supports the possibility to create and edit runtime data.
Many big changes have been done in these version to offer more possibilities to the user and also to make the API more understandable and more generic.
For scripts that have been generated with the previous version, the modifications to do are limited to make them compatible with this new API version.
Here is a list of the main features of this new version:
- To make the API simpler to understand, all the classes located in the sd.api.generated have been removed.
It means that the content of the ‘Stub’ classes have been merged with the public class itself:
- Example:
sd.api.generated.SDGraphStubhas been merged insd.api.SDGraph
IMPORTANT: You will have to edit your code to support this modification
All the base types (
int2,ColorRGB, …) have been moved fromSDValuetosd.api.sdbasetypes- Specific
SDValueclasses have been added for each base types. All conversion methods of
SDValuethat was used to get the base type value (int2,ColorRGB, …) have been removed.Example:
SDValue.toInt2()->int2, is now available throughSDValueInt2.get()myInt2 = myNode.getPropertyValueFromIdentifier('position', SDPropertyCategory.Input).get()
IMPORTANT: In the existing code, replace the method of
SDValue".to####()"to".get()"
- Specific
- Accessing to all the node definitions is now possible through the
SDModuleMgrclass The
SDModuleMgrcontains a list ofSDModuleand can be retrieved through theSDApplication.getModuleMgr()method- Each
SDModulecontains: - a list of
SDDefinition: A
SDDefinitioncontains all the properties of a node.
- a list of
a list of types: structs and enums
- Each
It means that many of the nodes and types used at runtime can now be retrieved without having to instantiate them.
- Accessing to all the node definitions is now possible through the
- Properties values and types of MDL objects are now compatible with other
SDTypeandSDValue. the property value of an MDL object now return
SDValuelike other Substance objects
- Properties values and types of MDL objects are now compatible with other
Add support of new
SDTypeandSDValuefor: enum, struct, matrix
Details¶
- [Changed] Class SDAPIObject
- [Changed] Enum SDApiError
[Added] InvalidHandle = 9
[Added] InvalidType = 10
[Added] InvalidValue = 11
[Added] NotImplemented = 12
[Added] NotSupported = 13
[Added] ItemNotFound = 14
[Added] DataIsReadOnly = 15
[Added] IrayNotInitialized = 16
- [Changed] Class SDApplication
[Added] Enum SDApplicationPath
[Added] Method SDApplication.getModuleMgr()
[Added] Method SDApplication.getPath()
- [Changed] Class SDArray
[Added] Method SDArray.pushBack()
[Added] Method SDArray.sNew()
[Added] Class SDBaseTypes
[Added] Class SDColorSpace
- [Changed] Class SDConnection
[Added] Method SDConnection.getInputProperty()
[Added] Method SDConnection.getInputPropertyNode()
[Removed] Method SDConnection.getTargetNode()
[Removed] Method SDConnection.getTargetProperty()
[Added] Class SDDefinition
- [Changed] Class SDGraph
[Added] Method SDGraph.deleteNode()
[Added] Method SDGraph.getGraphObjects()
[Added] Method SDGraph.getNodeDefinitions()
[Added] Method SDGraph.getNodeFromId()
[Added] Method SDGraph.newInstanceNode()
[Added] Method SDGraph.newNode()
[Added] Method SDGraph.setOutputNode()
[Removed] Method SDGraph.getNodeFromIdentifier()
[Removed] Method SDGraph.getProperties()
[Removed] Method SDGraph.getPropertyFromIdentifier()
[Removed] Method SDGraph.getPropertyValue()
[Removed] Method SDGraph.getPropertyValueFromIdentifier()
[Added] Class SDGraphObject
[Added] Class SDGraphObjectComment
[Added] Class SDGraphObjectFrame
[Added] Class SDGraphObjectPin
[Added] Class SDMDLConstantNode
[Added] Class SDMDLExporter
- [Changed] Class SDMDLGraph
[Added] Method SDMDLGraph.sNew()
[Added] Class SDMDLModule
[Added] Class SDMDLType
[Added] Class SDMDLTypeAlias
[Added] Class SDMDLTypeBSDF
[Added] Class SDMDLTypeBSDFMeasurementReference
[Added] Class SDMDLTypeCall
[Added] Class SDMDLTypeDF
[Added] Class SDMDLTypeEDF
[Added] Class SDMDLTypeLightProfileReference
[Added] Class SDMDLTypeParameterReference
[Added] Class SDMDLTypeReference
[Added] Class SDMDLTypeResourceReference
[Added] Class SDMDLTypeTextureReference
[Added] Class SDMDLTypeVDF
[Added] Class SDMDLValue
[Added] Class SDMDLValueAlias
[Added] Class SDMDLValueBSDF
[Added] Class SDMDLValueBSDFMeasurementReference
[Added] Class SDMDLValueCall
[Added] Class SDMDLValueDF
[Added] Class SDMDLValueEDF
[Added] Class SDMDLValueLightProfileReference
[Added] Class SDMDLValueParameterReference
[Added] Class SDMDLValueReference
[Added] Class SDMDLValueResourceReference
[Added] Class SDMDLValueTextureReference
[Added] Class SDMDLValueVDF
[Added] Class SDModule
[Added] Class SDModuleMgr
- [Changed] Class SDNode
[Added] Method SDNode.deletePropertyConnections()
[Added] Method SDNode.deletePropertyGraph()
[Added] Method SDNode.getAnnotationPropertyValueFromId()
[Added] Method SDNode.getDefinition()
[Added] Method SDNode.getInputPropertyValueFromId()
[Added] Method SDNode.getPropertyFromId()
[Added] Method SDNode.getPropertyValueFromId()
[Added] Method SDNode.getReferencedResource()
[Added] Method SDNode.newPropertyConnection()
[Added] Method SDNode.newPropertyConnectionFromId()
[Added] Method SDNode.newPropertyGraph()
[Added] Method SDNode.setAnnotationPropertyValueFromId()
[Added] Method SDNode.setInputPropertyValueFromId()
[Added] Method SDNode.setPropertyValue()
[Removed] Method SDNode.getPropertyFromIdentifier()
[Removed] Method SDNode.getPropertyValueFromIdentifier()
[Removed] Method SDNode.getReferencedGraph()
[Removed] Method SDNode.getType()
- [Changed] Class SDPackageMgr
[Added] Method SDPackageMgr.newUserPackage()
[Added] Method SDPackageMgr.savePackageAs()
[Removed] Method SDPackageMgr.saveAsPackage()
- [Changed] Class SDProperty
[Added] Enum SDPropertyInheritanceMethod
[Added] Method SDProperty.getDefaultValue()
[Added] Method SDProperty.getDescription()
[Added] Method SDProperty.getId()
[Added] Method SDProperty.getTypes()
[Added] Method SDProperty.isPrimary()
[Added] Method SDProperty.isReadOnly()
[Added] Method SDProperty.isVariadic()
[Removed] Method SDProperty.getIdentifier()
- [Changed] Class SDResource
[Added] Method SDResource.deleteProperty()
[Added] Method SDResource.getAnnotationPropertyValueFromId()
[Added] Method SDResource.getInputPropertyValueFromId()
[Added] Method SDResource.getProperties()
[Added] Method SDResource.getPropertyAnnotationValueFromId()
[Added] Method SDResource.getPropertyAnnotations()
[Added] Method SDResource.getPropertyFromId()
[Added] Method SDResource.getPropertyValue()
[Added] Method SDResource.getPropertyValueFromId()
[Added] Method SDResource.newProperty()
[Added] Method SDResource.setAnnotationPropertyValueFromId()
[Added] Method SDResource.setIdentifier()
[Added] Method SDResource.setInputPropertyValueFromId()
[Added] Method SDResource.setPropertyAnnotationValueFromId()
[Added] Method SDResource.setPropertyValue()
[Added] Class SDResourceBSDFMeasurement
- [Changed] Class SDResourceBitmap
[Added] Method SDResourceBitmap.sNew()
[Added] Method SDResourceBitmap.sNewFromFile()
- [Changed] Class SDResourceFolder
[Added] Method SDResourceFolder.sNew()
- [Changed] Class SDResourceFont
[Added] Method SDResourceFont.sNewFromFile()
[Added] Class SDResourceLightProfile
- [Changed] Class SDResourceSVG
[Added] Method SDResourceSVG.sNew()
[Added] Method SDResourceSVG.sNewFromFile()
- [Changed] Class SDResourceScene
[Added] Method SDResourceScene.sGetAvailablePrimitiveDefinitions()
[Added] Method SDResourceScene.sNewFromFile()
[Added] Method SDResourceScene.sNewFromPrimitiveId()
- [Changed] Class SDSBSCompGraph
[Added] Method SDSBSCompGraph.getPropertyInheritanceMethod()
[Added] Method SDSBSCompGraph.sNew()
[Added] Method SDSBSCompGraph.setIcon()
[Added] Method SDSBSCompGraph.setPropertyInheritanceMethod()
- [Changed] Class SDSBSCompNode
[Added] Method SDSBSCompNode.getInputPropertyInheritanceMethodFromId()
[Added] Method SDSBSCompNode.getPropertyInheritanceMethod()
[Added] Method SDSBSCompNode.setInputPropertyInheritanceMethodFromId()
[Added] Method SDSBSCompNode.setPropertyInheritanceMethod()
- [Changed] Class SDSBSFunctionGraph
[Added] Method SDSBSFunctionGraph.sNew()
- [Changed] Class SDTexture
[Added] Method SDTexture.sFromFile()
[Removed] Struct SDSize
- [Changed] Method SDTexture.getSize()
[Changed] Return type changed from ‘SDSize’ to ‘int2’
- [Changed] Class SDType
[Added] Enum SDTypeModifier
[Added] Method SDType.getId()
[Added] Method SDType.getModifier()
[Removed] Method SDType.getMembers()
[Removed] Method SDType.getName()
[Added] Class SDTypeArray
[Added] Class SDTypeBaseType
[Added] Class SDTypeBool
[Added] Class SDTypeBool2
[Added] Class SDTypeBool3
[Added] Class SDTypeBool4
[Added] Class SDTypeColorRGB
[Added] Class SDTypeColorRGBA
[Added] Class SDTypeCustom
[Added] Class SDTypeDouble
[Added] Class SDTypeDouble2
[Added] Class SDTypeDouble3
[Added] Class SDTypeDouble4
[Added] Class SDTypeEnum
[Added] Class SDTypeFloat
[Added] Class SDTypeFloat2
[Added] Class SDTypeFloat3
[Added] Class SDTypeFloat4
[Added] Class SDTypeInt
[Added] Class SDTypeInt2
[Added] Class SDTypeInt3
[Added] Class SDTypeInt4
[Added] Class SDTypeMatrix
[Removed] Class SDTypeMember
[Added] Class SDTypeString
[Added] Class SDTypeStruct
[Added] Class SDTypeTexture
[Added] Class SDTypeUsage
[Added] Class SDTypeVector
[Added] Class SDTypeVoid
- [Changed] Class SDUsage
[Added] Method SDUsage.sNew()
- [Changed] Class SDValue
[Removed] Struct int2
[Removed] Struct int3
[Removed] Struct int4
[Removed] Struct float2
[Removed] Struct float3
[Removed] Struct float4
[Removed] Struct ColorRGB
[Removed] Struct ColorRGBA
[Removed] Method SDValue.getMemberValueFromName()
[Removed] Method SDValue.toBool()
[Removed] Method SDValue.toColorRGB()
[Removed] Method SDValue.toColorRGBA()
[Removed] Method SDValue.toFloat()
[Removed] Method SDValue.toFloat2()
[Removed] Method SDValue.toFloat3()
[Removed] Method SDValue.toFloat4()
[Removed] Method SDValue.toInt()
[Removed] Method SDValue.toInt2()
[Removed] Method SDValue.toInt3()
[Removed] Method SDValue.toInt4()
[Removed] Method SDValue.toSDArray()
[Removed] Method SDValue.toSDTexture()
[Removed] Method SDValue.toString()
[Added] Class SDValueArray
[Added] Class SDValueBaseType
[Added] Class SDValueBool
[Added] Class SDValueBool2
[Added] Class SDValueBool3
[Added] Class SDValueBool4
[Added] Class SDValueColorRGB
[Added] Class SDValueColorRGBA
[Added] Class SDValueCustom
[Added] Class SDValueDouble
[Added] Class SDValueDouble2
[Added] Class SDValueDouble3
[Added] Class SDValueDouble4
[Added] Class SDValueEnum
[Added] Class SDValueFloat
[Added] Class SDValueFloat2
[Added] Class SDValueFloat3
[Added] Class SDValueFloat4
[Added] Class SDValueInt
[Added] Class SDValueInt2
[Added] Class SDValueInt3
[Added] Class SDValueInt4
[Added] Class SDValueMatrix
[Added] Class SDValueSerializer
[Added] Class SDValueString
[Added] Class SDValueStruct
[Added] Class SDValueTexture
[Added] Class SDValueUsage
[Added] Class SDValueVector